#ifndef __DRV_GPIO_H
#define __DRV_GPIO_H

#ifdef __cplusplus
extern "C" {
#endif

#include "mm32_device.h"
#include "hal_conf.h"

#define GPIO_OUT_NUM 4

#define LED1_PORT		GPIOA
#define LED1_PIN 		GPIO_Pin_15
#define LED1_PINSOURCE 	GPIO_PinSource15
#define LED1_PINAF	 	GPIO_AF_15

#define LED2_PORT		GPIOB
#define LED2_PIN 		GPIO_Pin_3
#define LED2_PINSOURCE 	GPIO_PinSource3
#define LED2_PINAF	 	GPIO_AF_15

#define LED3_PORT		GPIOB
#define LED3_PIN 		GPIO_Pin_4
#define LED3_PINSOURCE 	GPIO_PinSource4
#define LED3_PINAF	 	GPIO_AF_15

#define LED4_PORT		GPIOB
#define LED4_PIN 		GPIO_Pin_5
#define LED4_PINSOURCE 	GPIO_PinSource5
#define LED4_PINAF	 	GPIO_AF_15


#define allgpio_clkopen() {	\
    RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOA, ENABLE);	\
    RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOB, ENABLE);	\
};

typedef struct gpio_module
{
	uint8_t pin_source;
	uint8_t pin_af;
	uint16_t pin;
	GPIO_TypeDef *gpio;
}gpio_module;



void out_gpio_init(void);


#ifdef __cplusplus
}
#endif


#endif

